<?php

class Application_Model_DbTable_Mutuelles extends Zend_Db_Table_Abstract {

    protected $_name = 'mutuelles';
    protected $_primary = "id_mutuelle"; //clé primaire
    protected $_sequence = true; // auto incrementé

    public function getAllMutuelle() {

        //Zend_Debug::dump($this);
        //exit;

        $select = $this->select()
                ->setIntegrityCheck(false)
                ->from(array('m' => 'mutuelles'), array('id_mutuelle', 'raison_sociale', 'email'))
                ->joinleft(array('a' => 'adresse'), ' m.id_adresse=a.id_adresse', array('adresse', 'ville', 'cpostal', 'tel'))
                ->order('m.raison_sociale');


        // echo $select;
        // exit;
        return $this->fetchAll($select);
    }

    public function getMutuelle($id_mutuelle) {

        // la verification de l'existence de id est faite dans le controller
        $id_mutuelle = (int) $id_mutuelle;

        $select = $this->select()
                ->setIntegrityCheck(false)
                ->from(array('m' => 'mutuelles'), array(
                    'id_mutuelle', 'raison_sociale', 'email'))
                ->joinleft(array('a' => 'adresse'), ' m.id_adresse=a.id_adresse') // array(champs) pour resteindre les champs
                ->where('m.id_mutuelle = ?', $this->_db->quote($id_mutuelle, 'INTEGER'));
        $row = $this->fetchRow($select);

        if (!$row) {
            throw new Exception("Mutuelle nr $id introuvable.");
        }
        return $row->toArray();
    }

    public function addMutuelle($data) {

        $mutuelle = Cab_Utils::setUcfist($data['Mutuelle'], array('email'));
        $adresse = Cab_Utils::setUcfist($data['Adresse'], array('cpostal', 'portable', 'tel'));
        $mutuelle['id_mutuelle'] = null;
        $adresse['id_adresse'] = null;
        $date = new Zend_Date();
        $mutuelle['date_mutuelle'] = $date->toString('yyyy-MM-dd');

        $adresseTable = new Application_Model_DbTable_Adresse();
        $mutuelle['id_adresse'] = $adresseTable->addAdresse($adresse);

        //Zend_Debug::dump($mutuelle);
        //exit;

        $this->insert($mutuelle);
    }

    public function editMutuelle($data) {

        //echo "<h2>editPatient</h2>";
        // premiere lettre des mots en majuscule, champs a ne pas traiter
        $mutuelle = Cab_Utils::setUcfist($data['Mutuelle'], array('email'));
        $adresse = Cab_Utils::setUcfist($data['Adresse'], array('cpostal', 'portable', 'tel'));

        $adresseTable = new Application_Model_DbTable_Adresse();
        $adresseTable->editAdresse($adresse, $adresse['id_adresse']);
        //var_dump($mutuelle);
        //exit;
        $this->update($mutuelle, 'id_mutuelle = ' . (int) $mutuelle['id_mutuelle']);
    }

}

